module sw.upload.uploadcommands;
/**
 * uploadに関するコマンド
 */
version(Upload):
import nazo.http, std.uri, std.string, std.path, nazo.string;
import sw.commands, sw.parser, sw.upload.uploadmodelist, sw.siteconfig;

class UploadCommands:Commands{
  const static string prefix="upload";
  string value(SiteConfig* cfg,string name,string[] args,Cmd* cmd,uint hierarchy,string path){
    //* [upload:include name] アップロードしたファイルを表示
    if(name=="include"&&args.length==1){
      scope mimetype=MimeTypes.getMimeTypeStruct(getExt(args[0])).type;
      if(mimetype.length>0)
        return `<object type="`~mimetype~`" data="`~Http.relPath~"?mode=upload:show&amp;name="~encode(args[0])~`"/>`\n;
      else
        return `Error: Invalid Filetype`;
    }
    //* [upload:download name] アップロードしたファイルのダウンロードリンクを表示
    if(name=="download"&&args.length==1){
      scope icon=MimeTypes.getMimeTypeStruct(getExt(args[0])).icon;
      return `<object datatype="image/png" data="`~path[0..$-path.getAfter('/').length]~icon~`.png" width="16" height="16"></object><a href="`~path~"?mode=upload:show&amp;name="~encode(args[0])~`">`~args[0]~`</a>`\n;
    }
    return "Error: Invalid Command or Args or Prefix("~name~":"~.toString(args.length)~")";
  }
}
